
package com.wolfheader.wolfgame.service.admin;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.wolfheader.wolfgame.Principal;
import com.wolfheader.wolfgame.bean.admin.AdminBean;
import com.wolfheader.wolfgame.entity.admin.AdminEntity;

/**
 * Service - 管理员
 * 
 * @author 8615 Team
 * @version 1.0
 */
public interface AdminService extends BaseAdminService<AdminEntity, Long> {

	/**
	 * 分页查询
	 * 
	 * @param admin
	 *            管理员
	 * @return 权限，不存在时返回NULL
	 */
	Page<AdminEntity> findAll(String searchKey, Pageable pageable);

	/**
	 * 根据管理员查找权限
	 * 
	 * @param admin
	 *            管理员
	 * @return 权限，不存在时返回NULL
	 */
	List<String> findAuths(AdminEntity admin);

	/**
	 * 根据ID查找权限
	 * 
	 * @param id
	 *            ID
	 * @return 权限，不存在时返回NULL
	 */
	List<String> findAuths(Long id);

	/**
	 * 判断管理员是否登录
	 * 
	 * @return 管理员是否登录
	 */
	boolean authorized();

	/**
	 * 获取当前管理员
	 * 
	 * @return 当前管理员，不存在时返回NULL
	 */
	AdminEntity getCurrent();

	/**
	 * 获取当前身份信息
	 * 
	 * @return 身份信息，不存在时返回NULL
	 */
	Principal getCurrentPrincipal();

	/**
	 * 获取当前管理员的ID
	 * 
	 * @return 当前管理员的ID，不存在时返回NULL
	 */
	Long getCurrentId();

	/**
	 * 获取当前管理员的用户名
	 * 
	 * @return 当前登管理员的录用户名，不存在时返回NULL
	 */
	String getCurrentUsername();
	
	
	void add(AdminBean bean);
	
	/**
	 * 检测用户名是否存在
	 * @return
	 */
	boolean findUsernameEixst(String username);

}